package raytracer.objects;

import raytracer.math.Color3d;
import raytracer.math.Vector3d;
import raytracer.objects.ThreeDObject;

/**
 * Represents a generic light source, a usable light source is defined by inheriting from this
 * @author Thorsten Roth
 * @version 11.10.2006
 */
public abstract class LightSource {

	private Vector3d position;
	private Color3d color;
	private float intensity;
	private ThreeDObject blockerObject;
	
	public LightSource(Vector3d position, Color3d color) {
		this.blockerObject=null;
		this.position=position;
		this.color=color;
		this.intensity=1;
	}
	
	public void setBlockerObject(ThreeDObject bObj) {
		this.blockerObject=bObj;
	}
	
	public void setPosition(Vector3d position) {
		this.position=position;
	}
	
	public void setColor(Color3d color) {
		this.color=color;
	}
	
	public void setIntensity(float intensity) {
		this.intensity=intensity;
	}
	
	public ThreeDObject getBlockerObject() {
		return this.blockerObject;
	}
	
	public Vector3d getPosition() {
		return this.position;
	}
	
	public Color3d getColor() {
		return color;
	}
	
	public float getIntensity() {
		return intensity;
	}
	
}
